﻿using System.Collections.Generic;
using UnityEngine;

public abstract class PropertyElement : ITransform, IMaterial, IComponent {
	// === Public =====================================================================================================
	#region ITransform
	public Vector3 Position { get; set; }
	public Quaternion Rotation { get; set; }
	public Vector3 Scale { get; set; }
	#endregion

	#region IMaterial
	public string TexturePath { get; set; }
	public Vector2 TextureScale { get; set; }
	public Color Color { get; set; }
	#endregion

	#region IComponent
	public List<string> Components { get; set; }
	#endregion

	public ElementType Type { get; set; }
	public string Name { get; set; }

	// === Protected ==================================================================================================
	protected PropertyElement() {
		Position = new Vector3(0, -0.5f, 0);
		Rotation = Quaternion.Euler(Vector3.zero);
		Scale = Vector3.one;

		TexturePath = null;
		TextureScale = Vector2.one;
		Color = new Color(1, 1, 1, 1);
		
		Components = new List<string>();
	}
}